
Derniers tests et previews


TEST Wanderer The Fragments Of Fate : la version Quest enfin à niveau ?

TEST HUNTER×HUNTER NEN×IMPACT, un gameplay 5 étoiles dans un emballage discount

TEST Donkey Kong Bananza : l’art de la destruction

TEST Maestro : entre baguette magique et quelques fausses notes immersives sur PSVR 2
Dernières actualités

Meilleures ventes de jeux vidéo en France (semaine 29) : un jeu qui donne la banane en tête des ventes

BON PLAN PS5 : jusqu'à 100 € de remise sur le modèle Slim et les packs avec Call of Duty: Black Ops 6 !

Les jeux PlayStation bientôt sur Xbox et Switch !

Unseen Diplomacy 2 : l’espionnage en room-scale revient en 2025

tuto signature
Ok merci pour ma part sa je savais
Mais l'adresse pour les Pkg non signé ne va pas donc il faut trouver par vous meme la je met juste le tuto pour installer le 3.55 jb sans plus
je te remerci je l ai lu mais tu na pas expliquer comment utiliser le programmme pour signer les hombrew .....
Mon Loader_GX favoris passe enfin le grand saut !!
GX passe en version v2.2 Rev1100 Final Stable
Sources: http://code.google.com/p/usbloader-gui/
Pour toute information complémentaire voir mon tuto dans ma signature
dans mon pc j'ai un petit fichier (68ko) avec pour nom ECID iphone.shsh donc peut être que c'est ca ?
en te donnant le numéro de mon ECID tu pourrais pas savoir s'il a été enregistré et si c'est le cas comment je peut savoir c'est quoi mon ECID?
désolé de tout ces questions mais j'y connais pas grand chose
Y a moyen:
Après il y aurait apparemment un logiciel pour signer dans le kit de fail0verflow mais pas sur du tout car les outils de fail0verflow sont uniquement accès pour modifier des PUP et notamment compiler de PKG pour les PUP qui sont différents des PKG que nous avons l'habitude d'utiliser (MAJ des jeux, homebrew, jeux PSN...).
Sisi avec un manager de backup signé comme dit dans mon précédent post reli le mieux ^^", maintenant il faut le trouver sur net, si c'est pas encore dispo cela ne serait tarder car cela irai de paire avec se CFW. Mais tu perd beaucoup de chose aussi (li mon précédent post) à toi de voir si cela en vaut vraiment la chandelle pour toi.
A ba comme le dit mon collègue du dessus cela a été corrigé avec la version 1.2 de se CFW mais vous été bien sur que maintenant toutes ces options sont bien présente ? Non PS3Tool c'est pour signer les .pkg des mises à jours (PUP) qui sont différents des .pkg des homebrew, pour signer un .pkg il faut des bases en programmation et cela n'est pour le moment pas possible au commun des mortels look le binse legendkil ^^":
// SCEkrit.c (v1.0): Compute Sony's Private Keys
// Based on Sven's sceverify.c
// -------------------------------------------------------------
// Compile by copying to fail0verflow's ps3tools and add
// SCEkrit.c to TOOLS in the Makefile.
// Depends on libgmp; add -lgmp to LDFLAGS
// - Aaron Lindsay / @AerialX
// And thanks gbcft!
// Copyright 2010 Sven Peter <svenpeter@gmail.com>
// Licensed under the terms of the GNU GPL, version 2
// http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
#include "tools.h"
#include "types.h"
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>
#include <gmp.h>
static int keyid = -1;
static u8 *ptr1 = NULL;
static u8 *ptr2 = NULL;
static u16 type;
typedef struct {
u16 flags;
u32 meta_offset;
u64 info_offset;
u32 app_type;
u64 filesize;
u64 header_len;
} fileinfo;
static fileinfo info1;
static fileinfo info2;
static struct keylist *klist = NULL;
static struct keylist *self_load_keys(fileinfo* info)
{
enum sce_key id;
switch (info->app_type) {
case 1:
id = KEY_LV0;
break;
case 2:
id = KEY_LV1;
break;
case 3:
id = KEY_LV2;
break;
case 4:
id = KEY_APP;
break;
case 5:
id = KEY_ISO;
break;
case 6:
id = KEY_LDR;
break;
default:
fail("invalid type: %08x", info->app_type);
}
return keys_get(id);
}
static void read_self_header(u8* ptr, fileinfo* info)
{
info->flags = be16(ptr + 0x08);
info->meta_offset = be32(ptr + 0x0c);
info->header_len = be64(ptr + 0x10);
info->filesize = be64(ptr + 0x18);
info->info_offset = be64(ptr + 0x28);
info->app_type = be32(ptr + info->info_offset + 0x0c);
klist = self_load_keys(info);
}
static void read_pkg_header(u8* ptr, fileinfo* info)
{
info->flags = be16(ptr + 0x08);
info->meta_offset = be32(ptr + 0x0c);
info->header_len = be64(ptr + 0x10);
info->filesize = be64(ptr + 0x18);
klist = keys_get(KEY_PKG);
}
static void decrypt(u8* ptr)
{
if (keyid < 0)
keyid = sce_decrypt_header(ptr, klist);
else if (keyid != sce_decrypt_header(ptr, klist))
fail("Both files must have the same key id");
if (keyid < 0)
fail("sce_decrypt_header failed");
if (sce_decrypt_data(ptr) < 0)
fail("sce_decrypt_data failed");
if (klist->keys[keyid].pub_avail < 0)
fail("no public key available");
if (ecdsa_set_curve(klist->keys[keyid].ctype) < 0)
fail("ecdsa_set_curve failed");
ecdsa_set_pub(klist->keys[keyid].pub);
}
static void verify_signature(u8* ptr, fileinfo* info, u8* hash, u8** s, u8** r)
{
u64 sig_len;
sig_len = be64(ptr + info->meta_offset + 0x60);
*r = ptr + sig_len;
*s = *r + 21;
sha1(ptr, sig_len, hash);
printf("Signature\n");
if (ecdsa_verify(hash, *r, *s))
printf(" Status: OK\n");
else
printf(" Status: FAIL\n");
}
static void load_num(mpz_t n, u8* un)
{
char buffer[0x100];
char* ptr = buffer;
int i;
for (i = 0; i < 21; i++) {
sprintf(ptr, "%02x", un[i]);
ptr += 2;
}
mpz_set_str(n, buffer, 16);
}
static char* calculate_private_key(u8* us1, u8* us2, u8* uz1, u8* uz2, u8* un, u8* ur)
{
mpz_t s1, s2, z1, z2, n, r, k, dA;
mpz_inits(s1, s2, z1, z2, n, r, k, dA, NULL);
load_num(s1, us1); load_num(s2, us2); load_num(z1, uz1); load_num(z2, uz2); load_num(n, un); load_num(r, ur);
mpz_sub(z2, z1, z2);
mpz_sub(s2, s1, s2);
mpz_invert(s2, s2, n);
mpz_mul(k, z2, s2);
mpz_mod(k, k, n);
mpz_mul(s2, s1, k);
mpz_sub(s2, s2, z1);
mpz_invert(r, r, n);
mpz_mul(dA, s2, r);
mpz_mod(dA, dA, n);
// printf("k: %s\n", mpz_get_str(NULL, 16, k));
return mpz_get_str(NULL, 16, dA);
}
int main(int argc, char *argv[])
{
if (argc != 3)
fail("usage: scesekrit filename1 filename2");
ptr1 = mmap_file(argv[1]);
ptr2 = mmap_file(argv[2]);
type = be16(ptr1 + 0x0a);
if (type != be16(ptr2 + 0x0a))
fail("Files must be the same type");
if (type == 1) {
read_self_header(ptr1, &info1);
} else if(type == 3) {
read_pkg_header(ptr1, &info1);
} else
fail("Unknown type: %d", type);
if ((info1.flags) & 0x8000)
fail("devkit file; nothing to verify");
if (klist == NULL)
fail("no key found");
decrypt(ptr1);
if (type == 1) {
read_self_header(ptr2, &info2);
} else if(type == 3) {
read_pkg_header(ptr2, &info2);
} else
fail("Unknown type: %d", type);
if ((info2.flags) & 0x8000)
fail("devkit file; nothing to verify");
if (klist == NULL)
fail("no key found");
decrypt(ptr2);
u8* s1;
u8* s2;
u8 z1[21];
u8 z2[21];
u8* r1;
u8* r2;
u8 ec[21];
u8 n[21];
z1[0] = 0;
z2[0] = 0;
ecdsa_get_params(klist->keys[keyid].ctype, ec, ec, ec, n, ec, ec);
printf("%s ", argv[1]);
verify_signature(ptr1, &info1, z1 + 1, &s1, &r1);
printf("%s ", argv[2]);
verify_signature(ptr2, &info2, z2 + 1, &s2, &r2);
if (memcmp(r1, r2, 21))
fail("Both files must share the same r signature value.");
const char* dA = calculate_private_key(s1, s2, z1, z2, n, r1);
int len = strlen(dA);
int i;
printf("Private Key: ");
for (i = len / 2; i < 21; i++)
printf("00");
printf("%s\n", dA);
return 0;
}
Donc pour l'instant il n'y a même pas de logiciel pour ceci c'est juste cette feuille de route (dira t'on) pour programmer la signature via lunix.
A oui effectivement remi06 j'ai pas pensé à ces foutus syscall, donc oui il faudrai aussi une modif sur le firmware au niveau des syscall, une version 1.3 peut être.